//思路：循环获得新的数字在处理

import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class Solution {
    public static void main(String[] args) {
        System.out.println(isHappy(19));
    }

    //
    public static boolean isHappy(int n) {
        Set<Integer> s=new HashSet<>();
      while(n!=1){
          int count=0;
          while(n>0){
              count+=(n%10)*(n%10);
              n=n/10;
          }
          if(s.contains(count)){
              return false;
          }else{
              s.add(count);
          }
          n=count;
      }
      return true;
    }

}













